//简单的排序问题
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void function0(int arr[], int len);
void function1(int arr[], int len);
void function2(int arr[], int len);

int main ()
{
    int arr111[10] = {0};
    //生成10个随机数，范围为0~99
    srand(time(NULL));
    //把随机数存进数组并输出排序前的原始数组
    for (int i = 0; i < 10; i++)
    {
        int number = rand() % 100;
        arr111[i] = number;
        printf("%d\n",number);
    }
    int len = sizeof(arr111) / sizeof(int);
    printf("--------------------\n");

    //冒泡排序
    printf("冒泡排序:");
    function1(arr111,len);
    function0(arr111,len);
    printf("\n");
    printf("--------------------\n");

    //选择排序
    printf("选择排序:");
    function2(arr111,len);
    function0(arr111,len);
}

//遍历数组
void function0(int arr[], int len)
{
    for (int i = 0; i < len; i++)
    {
        printf("%d ",arr[i]);
    }
}

//冒泡排序
void function1(int arr[], int len)
{
    for (int i = 1; i < len; len--)
    {
        for (int j = 0; j < (len - 1); j++)
        {
            //比较大小交换元素
            if (arr[j] > arr[j + 1])
            {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        } 
    }
}

//选择排序
void function2(int arr[], int len)
{
    for (int i = 0; i < (len - 1); i++)
    {
        for(int j = 1; j < len; j++,len--)
        {
            //比较大小交换元素
            if (arr[i] > arr[i + j])
            {
                int temp = arr[i];
                arr[i] = arr[i + j];
                arr[i + j] = temp;
            }
        }
    }
}